home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / redakcyjne / programy / Weather Watcher Live 6.1.23 / WWL6123.exe / {app} / Skins / Interface / Splendid / Includes / Splendid.js < prev   
Text File  |  2009-10-16  |  21KB  |  624 lines

  1. var windArrowDirection = 'S';
  2. var lastWindDirection;
  3.  
  4. //***************************************************
  5. //*  Prevent from highlighting text in web browser  *
  6. //***************************************************
  7. document.onselectstart = new Function ("return false");
  8.  
  9. //*********************************************
  10. //*  Used to interact with the WWL interface  *
  11. //*********************************************
  12. function setRunAction(action)
  13. {    document.getElementById("WW-RunAction").innerHTML = action;
  14. }
  15.             
  16. //***************************
  17. //*  Bottom menu functions  *
  18. //***************************
  19. var newsMenuOpen = false;
  20. var healthMenuOpen = false;
  21. var videosMenuOpen = false;
  22. var photosMenuOpen = false;
  23. var camerasMenuOpen = false;
  24.  
  25. function showMenu(menuName)
  26. {    hideAllMenus(menuName);            
  27.     document.getElementById(menuName).style.display='';
  28.     
  29.     switch (menuName) 
  30.     {    case "WW-NewsMenu":
  31.             newsMenuOpen = true;
  32.             break;
  33.         case "WW-HealthMenu":
  34.             healthMenuOpen = true;
  35.             break;
  36.         case "WW-VideosMenu":
  37.             videosMenuOpen = true;
  38.             break;
  39.         case "WW-PhotosMenu":
  40.             photosMenuOpen = true;
  41.             break;
  42.         case "WW-CamerasMenu":
  43.             camerasMenuOpen = true;
  44.             break;
  45.     }
  46. }
  47.  
  48. function hideMenu(menuName)
  49. {    switch (menuName) 
  50.     {      case "WW-NewsMenu": 
  51.             if (newsMenuOpen == false) 
  52.              {    document.getElementById('WW-NewsMenu').style.display='none';
  53.                  document.getElementById('WW-NewsMenuImg').src='../../Images/Links/NewsOff.gif'; 
  54.             }
  55.              break;
  56.         case "WW-HealthMenu": 
  57.             if (healthMenuOpen == false) 
  58.              {    document.getElementById('WW-HealthMenu').style.display='none';
  59.                  document.getElementById('WW-HealthMenuImg').src='../../Images/Links/HealthOff.gif'; 
  60.              }
  61.              break;        
  62.         case "WW-VideosMenu": 
  63.             if (videosMenuOpen == false) 
  64.              {    document.getElementById('WW-VideosMenu').style.display='none';
  65.                  document.getElementById('WW-VideosMenuImg').src='../../Images/Links/VideosOff.gif'; 
  66.              }
  67.             break;
  68.         case "WW-PhotosMenu": 
  69.             if (photosMenuOpen == false) 
  70.              {    document.getElementById('WW-PhotosMenu').style.display='none';
  71.                  document.getElementById('WW-PhotosMenuImg').src='../../Images/Links/PhotosOff.gif'; 
  72.              }
  73.              break;
  74.         case "WW-CamerasMenu": 
  75.               if (camerasMenuOpen == false) 
  76.              {    document.getElementById('WW-CamerasMenu').style.display='none';
  77.                  document.getElementById('WW-CamerasMenuImg').src='../../Images/Links/CamerasOff.gif'; 
  78.              }
  79.              break;            
  80.     }
  81. }
  82.  
  83. function hideAllMenus(menuName)
  84. {    if (menuName != "WW-NewsMenu") if (document.getElementById('WW-NewsMenu').style.display != 'none') hideMenu('WW-NewsMenu');
  85.     if (menuName != "WW-HealthMenu") if (document.getElementById('WW-HealthMenu').style.display != 'none') hideMenu('WW-HealthMenu');
  86.     if (menuName != "WW-VideosMenu") if (document.getElementById('WW-VideosMenu').style.display != 'none') hideMenu('WW-VideosMenu');
  87.     if (menuName != "WW-PhotosMenu") if (document.getElementById('WW-PhotosMenu').style.display != 'none') hideMenu('WW-PhotosMenu');
  88.     if (menuName != "WW-CamerasMenu") if (document.getElementById('WW-CamerasMenu').style.display != 'none') hideMenu('WW-CamerasMenu');
  89. }
  90.  
  91. function closeMenu(menuName, closeImmediately)
  92. {    closeImmediately = closeImmediately || false;
  93.     
  94.     if (closeImmediately == false)
  95.         setTimeout("hideMenu('" + menuName + "')", 500);
  96.     else
  97.         setTimeout("hideMenu('" + menuName + "')", 0);
  98. }
  99.  
  100.  
  101. //*******************
  102. //*  Skin Settings  *
  103. //*******************
  104. function loadSkinSettings()
  105. {    //***************************
  106.     //*  Load news bar display  *
  107.     //***************************
  108.     switch (document.getElementById("WW-SkinOption4").innerHTML)
  109.     {    case "Hide":
  110.             document.getElementById("WW-News-Bar-Top").style.display = "none";
  111.             break;
  112.         default:                    
  113.             document.getElementById("WW-News-Bar-Top").style.display = "";
  114.             break;
  115.     }            
  116.     
  117.     //*************************
  118.     //*  Load slider display  *
  119.     //*************************
  120.     document.getElementById("SliderDIV").style.left = "32px";
  121.  
  122.     try
  123.     {    switch (document.getElementById("WW-SkinOption2").innerHTML)
  124.         {    case "Days":
  125.                 document.getElementById("WW-Day-Slider").style.display = "";
  126.                 document.getElementById("WW-Moon-Slider").style.display = "none";
  127.                 document.getElementById("WW-Hour-Slider").style.display = "none";
  128.                 break;
  129.             case "Moons":
  130.                 document.getElementById("WW-Moon-Slider").style.display = "";
  131.                 document.getElementById("WW-Day-Slider").style.display = "none";
  132.                 document.getElementById("WW-Hour-Slider").style.display = "none";
  133.                 break;
  134.             default:    
  135.                 document.getElementById("WW-Moon-Slider").style.display = "none";
  136.                 
  137.                 switch (document.getElementById("WW-IsInternational").innerHTML)
  138.                 {    case "False":
  139.                         document.getElementById("WW-Day-Slider").style.display = "none";
  140.                         document.getElementById("WW-Hour-Slider").style.display = "";
  141.                         break;
  142.                     default:
  143.                         document.getElementById("WW-Day-Slider").style.display = "";
  144.                         document.getElementById("WW-Hour-Slider").style.display = "none";
  145.                         break;
  146.                 }    
  147.  
  148.                 break;
  149.         }        
  150.     }
  151.     catch(err){}    
  152.     
  153.     //****************************
  154.     //*  Load thermometer color  *
  155.     //****************************
  156.     switch (document.getElementById("WW-SkinOption1").innerHTML) 
  157.     {    case "Blue": 
  158.             document.getElementById("WW-Thermometer-Bulb").src = "../../Images/ThermBulbBlue.png";
  159.             document.getElementById("WW-Thermometer-Fill").style.background = "url('../../Images/ThermTopBlue.png') bottom";
  160.             break;
  161.         case "BlueRed":
  162.             if (parseInt(plainTemp) < 33)
  163.             {    document.getElementById("WW-Thermometer-Bulb").src = "../../Images/ThermBulbBlue.png";
  164.                 document.getElementById("WW-Thermometer-Fill").style.background = "url('../../Images/ThermTopBlue.png') bottom";
  165.             }
  166.             else
  167.             {    document.getElementById("WW-Thermometer-Bulb").src = "../../Images/ThermBulbRed.png";
  168.                 document.getElementById("WW-Thermometer-Fill").style.background = "url('../../Images/ThermTopRed.png') bottom";
  169.             }
  170.             
  171.             break;
  172.         case "RedBlue":
  173.             if (parseInt(plainTemp) < 33)
  174.             {    document.getElementById("WW-Thermometer-Bulb").style.background = "url('../../Images/ThermBulbRed.png')";
  175.                 document.getElementById("WW-Thermometer-Fill").style.background = "url('../../Images/ThermTopRed.png') bottom";
  176.             }
  177.             else
  178.             {    document.getElementById("WW-Thermometer-Bulb").src = "../../Images/ThermBulbBlue.png";
  179.                 document.getElementById("WW-Thermometer-Fill").style.background = "url('../../Images/ThermTopBlue.png') bottom";
  180.             }
  181.             
  182.             break;
  183.         default:
  184.             document.getElementById("WW-Thermometer-Bulb").src = "../../Images/ThermBulbRed.png";
  185.             document.getElementById("WW-Thermometer-Fill").style.background = "url('../../Images/ThermTopRed.png') bottom";
  186.             break;
  187.     }
  188.     
  189.     //****************************
  190.     //*  Load wind gauge arrow  *
  191.     //***************************
  192.     switch (document.getElementById("WW-SkinOption3").innerHTML)
  193.     {    case "Reverse": 
  194.             windArrowDirection = 'R';
  195.             break;
  196.         default: 
  197.             windArrowDirection = 'S';
  198.             break;
  199.     }
  200. }
  201.  
  202.  
  203. //**********************************************************************************************************
  204. //*  The following functions are called from the Weather Watcher main window when the buttons are clicked  *
  205. //**********************************************************************************************************
  206. function displayCurrent()
  207. {    try
  208.     {    if (document.getElementById("WW-Current-View").style.display = "none")
  209.         {    showHideSlider(true);
  210.             showHideGauges(true);
  211.             
  212.             document.getElementById("WeatherBug-Logo").style.display = "";
  213.             document.getElementById("WW-News-Bar").style.display = "";
  214.             
  215.             document.getElementById("WW-Day-View").style.display = "none";
  216.             document.getElementById("WW-Current-View").style.display = "";
  217.             document.getElementById("WW-Hour-View").style.display = "none";
  218.         }        
  219.     }
  220.     catch(err){}                
  221. }
  222.  
  223. function displayHour()
  224. {    if (document.getElementById("WW-Hour-View").style.display = "none")
  225.     {    showHideSlider(false);
  226.         showHideGauges(false);
  227.                     
  228.         document.getElementById("WeatherBug-Logo").style.display = "none";
  229.         document.getElementById("WW-News-Bar").style.display = "none";
  230.         
  231.         document.getElementById("WW-Current-View").style.display = "none";
  232.         
  233.         switch (document.getElementById("WW-IsInternational").innerHTML)
  234.         {    case "False":
  235.                 document.getElementById("WW-Day-View").style.display = "none";
  236.                 document.getElementById("WW-Hour-View").style.display = "";        
  237.                 break;
  238.             default:
  239.                 document.getElementById("WW-Day-View").style.display = "";
  240.                 document.getElementById("WW-Hour-View").style.display = "none";
  241.                 break;
  242.         }        
  243.     }
  244. }
  245.  
  246. function displayDay()
  247. {    if (document.getElementById("WW-Day-View").style.display = "none")
  248.     {    showHideSlider(false);
  249.         showHideGauges(false);
  250.                     
  251.         document.getElementById("WeatherBug-Logo").style.display = "none";
  252.         document.getElementById("WW-News-Bar").style.display = "none";
  253.         
  254.         document.getElementById("WW-Current-View").style.display = "none";
  255.         document.getElementById("WW-Day-View").style.display = "";
  256.         document.getElementById("WW-Hour-View").style.display = "none";
  257.     }
  258. }
  259.  
  260.  
  261. //**********************
  262. //*  Slider functions  *
  263. //**********************
  264. function showHideSlider(makeVisible)
  265. {    if (makeVisible == true)
  266.     {    document.getElementById("SliderDIV").style.display = "";
  267.         document.getElementById("SliderEnd").style.display = "";
  268.     }
  269.     else
  270.     {    document.getElementById("SliderDIV").style.display = "none";
  271.         document.getElementById("SliderEnd").style.display = "none";
  272.     }
  273. }            
  274.  
  275. function resetSliderPosition()
  276. {    document.getElementById("SliderDIV").style.left = "32px";
  277. }
  278.  
  279. function showHideGauges(makeVisible)
  280. {    if (makeVisible == true)
  281.     {    document.getElementById("WW-Gauges").style.display = "";
  282.         document.getElementById("Right-Border").style.display = "none";
  283.     }
  284.     else
  285.     {    document.getElementById("WW-Gauges").style.display = "none";
  286.         document.getElementById("Right-Border").style.display = "";
  287.     }
  288. }
  289.  
  290.  
  291. //************************
  292. //*  Realtime functions  *
  293. //************************
  294. function refreshRealtimeData(updated, updatedTimeStamp, currentTemp, currentTempC, highTemp, highTempC, lowTemp, lowTempC, feelsLikeTemp, feelsLikeTempC, tempRate, tempRateC, wetBulb, wetBulbC, dewPoint, dewPointC, humidity, humidityHigh, humidityLow, humidityRate, rain, rainC, rainRate, rainRateC, rainRateMax, rainRateMaxC, rainMonth, rainMonthC, windDirection, windDirectionAvg, windSpeed, windSpeedC, windSpeedAvg, windSpeedAvgC, windGustDirection, windGust, windGustC, pressure, pressureC, pressureHigh, pressureHighC, pressureLow, pressureLowC, pressureRate, pressureRateC, tempDisplayBoth, tempDisplayPrimary, windInDegrees)
  295. {    updateDIVs('WW-Updated', updated);
  296.     updateDIVs('WW-Updated-Replaced', updated.replace('Observed','Updated'));
  297.     
  298.     if (humidity != 'N/A') humidity = humidity + '%';
  299.     if (humidityLow != 'N/A') humidityLow = humidityLow + '%';
  300.     if (humidityHigh != 'N/A') humidityHigh = humidityHigh + '%';
  301.     if (humidityRate != 'N/A') humidityRate = humidityRate + '%';
  302.     
  303.     updateDIVs("WW-Barometer-Rate", pressureHigh);
  304.     updateDIVs('WW-CurrentHumidity', humidity);
  305.     updateDIVs('WW-HumidityLow', humidityLow);
  306.     updateDIVs('WW-HumidityHigh', humidityHigh);
  307.     updateDIVs('WW-HumidityRate', humidityRate);
  308.     updateDIVs('WW-WindDirectionAvg', windDirectionAvg);
  309.     updateDIVs('WW-WindGustDirection', iif(windInDegrees == "false", windGustDirection, convertWindDirectionToDegrees(windGustDirection) + "°"));
  310.     
  311.     if (windDirectionAvg != 'N/A') updateDIVs('WW-WindDegreesAvg', convertWindDirectionToDegrees(windDirectionAvg) + '°');    
  312.     else updateDIVs('WW-WindDegreesAvg', windDirection);    
  313.     
  314.     if (windGustC != 'N/A') updateDIVs('WW-WindGust', windGustC);    
  315.     else updateDIVs('WW-WindGust', windGust);    
  316.     
  317.     if (pressureLowC != 'N/A') updateDIVs('WW-BarometerLow', pressureLowC);
  318.     else updateDIVs('WW-BarometerLow', pressureLow);
  319.  
  320.     if (pressureHighC != 'N/A') updateDIVs('WW-BarometerHigh', pressureHighC);
  321.     else updateDIVs('WW-BarometerHigh', pressureHigh);
  322.     
  323.     if (pressureRateC != 'N/A') updateDIVs('WW-BarometeRate', pressureRateC);
  324.     else updateDIVs('WW-BarometerRate', pressureRate);
  325.  
  326.     refreshRealtimeTemps(currentTemp, currentTempC, highTemp, highTempC, lowTemp, lowTempC, feelsLikeTemp, feelsLikeTempC, tempRate, tempRateC, wetBulb, wetBulbC, dewPoint, dewPointC, tempDisplayBoth, tempDisplayPrimary);
  327.     
  328.     if (windSpeedC != 'N/A') windSpeed = windSpeedC;
  329.     refreshRealtimeWindData(convertWindDirectionToDegrees(windDirection), windSpeed, feelsLikeTemp, '' , '', windInDegrees);
  330. }
  331.  
  332. function refreshRealtimeTemps(currentTemp, currentTempC, highTemp, highTempC, lowTemp, lowTempC, feelsLikeTemp, feelsLikeTempC, tempRate, tempRateC, wetBulb, wetBulbC, dewPoint, dewPointC, tempDisplayBoth, tempDisplayPrimary)
  333. {    if (tempDisplayPrimary == 'C') 
  334.     {    updateTemperature(currentTempC + '°', currentTempC, highTempC, feelsLikeTempC);
  335.         
  336.         if (currentTempC != 'N/A') 
  337.         {    if (tempDisplayBoth == false)
  338.             {    currentTempC = currentTempC + "°";
  339.             }
  340.             else
  341.             {    currentTempC = currentTempC + "°/" + currentTemp + "°";
  342.             }
  343.         }
  344.         
  345.         if (lowTempC != 'N/A') 
  346.         {    if (tempDisplayBoth == false)
  347.             {    lowTempC = lowTempC + "°";
  348.             }
  349.             else
  350.             {    lowTempC = lowTempC + "°/" + lowTemp + "°";
  351.             }
  352.         }
  353.         
  354.         if (highTempC != 'N/A') 
  355.         {    if (tempDisplayBoth == false)
  356.             {    highTempC = highTempC + "°";
  357.             }
  358.             else
  359.             {    highTempC = highTempC + "°/" + highTemp + "°";
  360.             }
  361.         }
  362.         
  363.         if (feelsLikeTempC != 'N/A') 
  364.         {    if (tempDisplayBoth == false)
  365.             {    feelsLikeTempC = feelsLikeTempC + "°";
  366.             }
  367.             else
  368.             {    feelsLikeTempC = feelsLikeTempC + "°/" + feelsLikeTemp + "°";
  369.             }
  370.         }
  371.         
  372.         if (dewPointC != 'N/A') 
  373.         {    if (tempDisplayBoth == false)
  374.             {    dewPointC = dewPointC + "°";
  375.             }
  376.             else
  377.             {    dewPointC = dewPointC + "°/" + dewPoint + "°";
  378.             }
  379.         }
  380.         
  381.         updateDIVs('WW-CurrentTemp', currentTempC);
  382.         updateDIVs('WW-TempLow', lowTempC);
  383.         updateDIVs('WW-TempHigh', highTempC);
  384.         
  385.         updateDIVs('WW-CurrentFeelsLikeTemp', feelsLikeTempC);
  386.         updateDIVs('WW-CurrentDew', dewPointC);
  387.     }
  388.     else
  389.     {    updateTemperature(currentTemp + '°', currentTemp, highTemp, feelsLikeTemp);
  390.         
  391.         if (currentTemp != 'N/A') 
  392.         {    if (tempDisplayBoth == false)
  393.             {    currentTemp = currentTemp + '°';
  394.             }
  395.             else
  396.             {    currentTemp = currentTemp + "°/" + currentTempC + "°";
  397.             }
  398.         }
  399.         
  400.         if (lowTemp != 'N/A') 
  401.         {    if (tempDisplayBoth == false)
  402.             {    lowTemp = lowTemp + "°";
  403.             }
  404.             else
  405.             {    lowTemp = lowTemp + "°/" + lowTempC + "°";
  406.             }
  407.         }
  408.         
  409.         if (highTemp != 'N/A') 
  410.         {    if (tempDisplayBoth == false)
  411.             {    highTemp = highTemp + "°";
  412.             }
  413.             else
  414.             {    highTemp = highTemp + "°/" + highTempC + "°";
  415.             }
  416.         }
  417.         
  418.         if (feelsLikeTemp != 'N/A') 
  419.         {    if (tempDisplayBoth == false)
  420.             {    feelsLikeTemp = feelsLikeTemp + "°";
  421.             }
  422.             else
  423.             {    feelsLikeTemp = feelsLikeTemp + "°/" + feelsLikeTempC + "°";
  424.             }
  425.         }
  426.         
  427.         if (dewPoint != 'N/A') 
  428.         {    if (tempDisplayBoth == false)
  429.             {    dewPoint = dewPoint + "°";
  430.             }
  431.             else
  432.             {    dewPoint = dewPoint + "°/" + dewPointC + "°";
  433.             }    
  434.         }
  435.         
  436.         updateDIVs('WW-CurrentTemp', currentTemp);
  437.         updateDIVs('WW-TempLow', lowTemp);
  438.         updateDIVs('WW-TempHigh', highTemp);
  439.         
  440.         updateDIVs('WW-CurrentFeelsLikeTemp', feelsLikeTemp);
  441.         updateDIVs('WW-CurrentDew', dewPoint);
  442.     }
  443. }            
  444.  
  445. //*****************************
  446. //*  Realtime wind functions  *
  447. //*****************************
  448. function refreshRealtimeWindData(windDirection, windSpeed, windChill, windSpeedPlain, windChillPlain, windInDegrees)
  449. {    if (isNaN(windSpeed.replace(",",""))) windSpeed = 0;
  450.     document.getElementById("WW-WindGauge-Text").innerHTML = windSpeed;        
  451.     
  452.     updateDIVs('WW-CurrentWind', windSpeed);    
  453.     
  454.     if (windInDegrees != null) 
  455.     {    if (windInDegrees == "false")
  456.         {    updateDIVs('WW-CurrentWindDirection', convertWindDegreesToDirection(windDirection));    
  457.         }
  458.         else
  459.         {    updateDIVs('WW-CurrentWindDirection', windDirection + "°");    
  460.         }
  461.     }
  462.     
  463.     windDirection = roundWindDirection(windDirection);
  464.  
  465.     if (isNaN(lastWindDirection) || windDirection == lastWindDirection)
  466.     {    document.getElementById("WW-WindGauge-Image").src = "../../Images/Wind/" + windDirection + ".gif";
  467.     }
  468.     else 
  469.     {    var imageFileName = "../../Images/Wind/" + lastWindDirection + "-" + windDirection + ".gif";
  470.                         
  471.         if (imageExists(imageFileName) == true) document.getElementById("WW-WindGauge-Image").src = imageFileName + "?" + getUniqueNumber;
  472.         else document.getElementById("WW-WindGauge-Image").src = "../../Images/Wind/" + windDirection + ".gif";
  473.     } 
  474.         
  475.     lastWindDirection = windDirection;
  476. }
  477.  
  478.  
  479. function roundWindDirection(windDirection)
  480. {    var degree;
  481.  
  482.     if (windArrowDirection == 'S')
  483.     {    windDirection = parseInt(windDirection) + 180;
  484.         if (windDirection > 359) windDirection = windDirection - 360;
  485.     }
  486.     
  487.     //*************************************************
  488.     //*  Round wind direction if not already rounded  *
  489.     //*************************************************
  490.     if (("|345|330|315|300|285|270|255|240|225|210|195|180|165|150|135|120|105|90|75|60|45|30|15|0|").indexOf("|" + windDirection + "|") == -1)
  491.     {    if (windDirection > 352) degree = 0;
  492.         else if (windDirection > 337) degree = 345;
  493.         else if (windDirection > 322) degree = 330;
  494.         else if (windDirection > 307) degree = 315;
  495.         else if (windDirection > 292) degree = 300;
  496.         else if (windDirection > 269) degree = 285;
  497.         else if (windDirection > 262) degree = 270;
  498.         else if (windDirection > 247) degree = 255;
  499.         else if (windDirection > 232) degree = 240;
  500.         else if (windDirection > 217) degree = 225;
  501.         else if (windDirection > 202) degree = 210;
  502.         else if (windDirection > 187) degree = 195;
  503.         else if (windDirection > 172) degree = 180;
  504.         else if (windDirection > 157) degree = 165;
  505.         else if (windDirection > 142) degree = 150;
  506.         else if (windDirection > 127) degree = 135;
  507.         else if (windDirection > 112) degree = 120;
  508.         else if (windDirection > 97) degree = 105;
  509.         else if (windDirection > 82) degree = 90;
  510.         else if (windDirection > 67) degree = 75;
  511.         else if (windDirection > 52) degree = 60;
  512.         else if (windDirection > 37) degree = 45;
  513.         else if (windDirection > 22) degree = 30;
  514.         else if (windDirection > 7) degree = 15;
  515.         else degree = 0;
  516.     }
  517.     else
  518.     {    degree = windDirection;
  519.     }
  520.     
  521.     return degree;
  522. }
  523.  
  524. function convertWindDegreesToDirection(windDegrees)
  525. {    var direction;
  526.  
  527.     if (windDegrees > 348.75) direction = "N";
  528.     else if (windDegrees > 326.25) direction = "NNW";
  529.     else if (windDegrees > 303.75) direction = "NW";
  530.     else if (windDegrees > 281.25) direction = "WNW";
  531.     else if (windDegrees > 258.75) direction = "W";
  532.     else if (windDegrees > 236.25) direction = "WSW";
  533.     else if (windDegrees > 213.75) direction = "SW";
  534.     else if (windDegrees > 191.25) direction = "SSW";
  535.     else if (windDegrees > 168.75) direction = "S";
  536.     else if (windDegrees > 146.25) direction = "SSE";
  537.     else if (windDegrees > 123.75) direction = "SE";
  538.     else if (windDegrees > 101.25) direction = "ESE";
  539.     else if (windDegrees > 78.75) direction = "E";
  540.     else if (windDegrees > 56.25) direction = "ENE";
  541.     else if (windDegrees > 33.75) direction = "NE";
  542.     else if (windDegrees > 11.25) direction = "NNE";
  543.     else direction = "N";
  544.     
  545.     return direction;
  546. }
  547.  
  548. function convertWindDirectionToDegrees(windDirection)
  549. {    switch(windDirection)
  550.     {    case "N":
  551.             return "0";
  552.               break;    
  553.         case "NNE":
  554.             return "23";
  555.               break;    
  556.         case "NE":
  557.             return "45";
  558.               break;    
  559.         case "ENE":
  560.             return "68";
  561.               break;    
  562.         case "E":
  563.             return "90";
  564.               break;    
  565.         case "ESE":
  566.             return "113";
  567.               break;    
  568.         case "SE":
  569.             return "135";
  570.               break;    
  571.         case "SSE":
  572.             return "158";
  573.               break;    
  574.         case "S":
  575.             return "180";
  576.               break;    
  577.         case "SSE":
  578.             return "158";
  579.               break;    
  580.         case "S":
  581.             return "180";
  582.               break;    
  583.         case "SSW":
  584.             return "203";
  585.               break;    
  586.         case "SW":
  587.             return "225";
  588.               break;    
  589.         case "WSW":
  590.             return "248";
  591.               break;    
  592.         case "W":
  593.             return "270";
  594.               break;    
  595.         case "WNW":
  596.             return "293";
  597.               break;    
  598.         case "NW":
  599.             return "315";
  600.               break;    
  601.         default:
  602.             return "0";
  603.             break;
  604.     }
  605. }
  606.  
  607. function roundTemperature(temp)
  608. {    if (temp != "NA")
  609.     {    temp = temp.replace(",",".");
  610.     
  611.         if (parseInt(temp).toString() != temp.toString())
  612.         {    if (temp > 0)
  613.             {    temp = parseFloat(temp) + 0.5;
  614.             }
  615.             else if (temp < 0)
  616.             {    temp = parseFloat(temp) - 0.5;
  617.             }
  618.         
  619.             temp = parseInt(temp);
  620.         }
  621.     }
  622.     
  623.     return temp;
  624. }